1. Field of the Invention
The invention generally relates to Quality of Service (QoS) control in wireless communications, and more particularly, to QoS control of reverse traffic channel for mobile communication devices.
2. Description of the Related Art
For forward packet data transmission in a mobile communication system, an access terminal (AT) is assigned a forward traffic channel from an access network (AN). The mobile communication systems, as will be described below, cover satellite systems, Integrated Services Digital Network (ISDN), 1x Code Division Multiple Access 2000 (1x CDMA 2000), 1x Evolution-Data Optimized (1x EVDO) system, and Long Term Evolution (LTE) system, etc. Upon reception of the forward packet data, the AN determines whether the reception is successful, and if errors are detected in the packet data, the AN requests for retransmission by a Hybrid Automatic Repeat Request (HARQ) mechanism. The HARQ mechanism is a retransmission scheme for requesting retransmission of an error-detected packet data to ensure the delivery of the packet data. For reverse packet (sub-packet) data transmission, an AT is assigned an access channel and a reverse traffic channel from an AN. The access channel is used by the AT to initiate communication with the AN or to respond to an AT directed message. The access channel consists of a pilot channel and a data channel. The reverse traffic channel is used by the AT to transmit user-specific traffic or signaling information to the AN. The reverse traffic channel comprises a pilot channel, a reverse rate indicator (RRI) channel, a data rate control (DRC) channel, an acknowledgement (ACK) channel, and a data channel. The RRI channel is used to indicate the transmission data rate used on the reverse traffic channel. The RRI channel is time-multiplexed with the pilot channel. The DRC channel is used by the AT to indicate to the AN the supportable forward traffic channel data rate and the best serving sector on the forward traffic channel. The ACK channel is used by the AT to inform the AN whether or not the packet data transmitted on the forward traffic channel has been received successfully.
Take a 1x EVDO system (or otherwise called a RevA 1x High Rate Packet Data (1xHRPD) system) for example. The Reverse Traffic Channel Media Access Control (RTCMAC) Subtype3 Protocol is the RTCMAC Layer protocol of the RevA 1xHRPD system that provides the rules and requirements for reverse traffic channel. Together with the Physical Layer specification, it specifies the requirement for reverse link a HARQ operation, which allows the reverse traffic channel to retransmit a missed sub-packet at the RTCMAC Layer. The grant calculation within the RTCMAC Layer addresses intra-AT Quality of Service (QoS) for multiple current active MAC flows at the AT. This is accomplished via per active MAC flow Traffic-to-Pilot power ratio (T2P) control. Each active MAC flow contributes to a sector loading and its contribution is strongly correlated with its average transmit T2P. The average T2P of an active MAC flow is controlled based on the requirements of the MAC flow, requirements of other concurrent active MAC flows, transmit power constraints, and sector loading.
FIG. 1 is a timing chart illustrating the QoS calculation and reverse packet (sub-packet) transmission for a conventional RTCMAC Subtype3 Protocol in a RevA 1xHRPD system. In a packet (frame)-based data communications system, a packet (frame) is usually fragmented into smaller quanta and each individual quantum associated with the packet (frame) is transmitted in an interlaced manner with quanta associated with other packets (frames). As shown in FIG. 1, the packet transmission is performed by repeating 3 interlaces by a predetermined cycle. For example, a first packet is composed of the sub-packets transmitted in the interlace no. 1, and a second packet is composed of the sub-packets transmitted in the interlace no. 2, and a third packet is composed of the sub-packets transmitted in the interlace no. 0. Assume the sub-packet transmitted at sub-frame n−3 is the first sub-packet of the second packet, denoted as interlace no. 2, and the current reverse sub-packet is the second sub-packet of the second packet to be transmitted at sub-frame n. The HARQ (ACK or NAK) for a sub-packet may be received from the forward MAC channel at slot 3 of the second next sub-frame to the sub-frame where the sub-packet is transmitted. That is, the HARQ for the first sub-packet of the second packet is received at slot 3 of sub-frame n−1. The QoS calculation of reverse sub-packet size and transmission mode determination for the current reverse sub-packet to be transmitted at subframe n are conventionally performed before sub-frame n and after the HARQ for the previous sub-packet of the same packet transmitted at sub-frame n−3 is available at slot 3 of sub-frame n−1. In addition, the reverse sub-packet preparation includes packet processing of all the RevA 1xHRPD stack layers, and symbol processing which involves interleaving by the physical layer. FIG. 2 is a timing chart further illustrating the QoS calculation and reverse sub-packet transmission for a conventional RTCMAC Subtype3 Protocol in the RevA 1xHRPD system. As shown in FIG. 2, the reverse sub-packet preparation may be further divided into 5 steps. After the HARQ for the previous sub-packet of the same packet transmitted at sub-frame n−3 is received at slot 3 of sub-frame n−1 (step 1), the QoS calculation is performed to determine the reverse sub-packet size and transmission mode of the current reverse sub-packet to be transmitted at sub-frame n (step 2). Subsequently, the packet processing of all the RevA 1xHRPD stack layers is performed to prepare the current reverse sub-packet to be transmitted at sub-frame n (step 3), and the symbol processing which involves interleaving by the physical layer is also performed (step 4). Lastly, the modulation of the current reverse sub-packet is processed by the physical layer and then the current reverse sub-packet is transmitted to the AN at sub-frame n (step 5).
FIG. 3 is a flow chart illustrating the QoS calculation for the conventional RTCMAC Subtype3 Protocol in the RevA 1xHRPD system. The QoS calculation is performed by using an RTCMAC QoS Algorithm. To begin, the RTCMAC QoS Algorithm first updates PilotStrengthn,s, QRABn, FRABn, and QRABpsn from forward MAC channel information PilotStrengthm,s, SlotQRABm,s, DRCLock, and SlotFRABm,s at sub-frame n (step S310). Next, it is determined whether the QoS has been just started or restarted by checking if LastBucketLevelMaxi is null and BucketLevelMaxi is not null (step S315), wherein the BucketLevelMaxi represents the bucket level (or accumulated T2P resource) assigned by the connected network at sub-frame n for MAC flow i and LastBucketLevelMaxi represents the last recorded value of BucketLevelMaxi. At the first time of QoS, LastBucketLevelMaxi is null and is initialized if BucketLevelMaxi is not NULL. Latter, if the connected network wishes to re-start QoS, it may transmit a BucketLevelMaxi with null value to trigger initialization of LastBucketLevelMaxi. Subsequent to step S315, if so, BucketLeveli,n, T2PInFlowi,n−1, TT2PHoldi,n−1, T2POutFlowi,n−1, and BucketLevelSati,n are initialized (step S320). Subsequent to step S315, if not, with the updated PilotStrengthn,s and FRABn, and initialized T2PInFlowi,n−1, and T2POutFlowi,n−1, T2PInFlowi,n may be updated (step S330) as follows:
            Δ      ⁢                          ⁢      T      ⁢                          ⁢      2      ⁢              PInFlow                  i          ,          n                      =          f      ⁢                          ⁢      1      ⁢              (                                                                              PilotStrength                                      n                    ,                    s                                                  ,                                  FRAB                  n                                ,                                  T                  ⁢                                                                          ⁢                  2                  ⁢                                                                          ⁢                                      PInFlow                                          i                      ,                                              n                        -                        1                                                                                            ,                                  BucketLevel                                      1                    ,                    n                                                  ,                                                                                        BucketLevelSat                                  i                  ,                  n                                                                    )                        T      ⁢                          ⁢      2      ⁢              PInFlow                  i          ,          n                      =          f      ⁢                          ⁢      2      ⁢              (                              Δ            ⁢                                                  ⁢            T            ⁢                                                  ⁢            2            ⁢                          PInFlow                              i                ,                n                                              ,                      T            ⁢                                                  ⁢            2            ⁢                          POutFlow                              i                ,                                  n                  -                  1                                                              ,                      T            ⁢                                                  ⁢            2            ⁢                          PInFlow                              i                ,                                  n                  -                  1                                                                    )            Subsequently, the reverse sub-packet size and transmission mode is determined based on PotentialT2POutflowi,HC and QOutflowi,HC (step S340), wherein PotentialT2POutflowi,HC and QOutflowi,HC may be obtained as follows:PotentialT2POutflowi,HC=f3(BucketLeveli,n,T2PInFlowi,n)QOutflowi,HC=f4(Queue size in subframe n, PotentialT2POutflowi,HC)Regarding the detailed calculation of the reverse sub-packet size and transmission mode, reference may be made to the 3GPP2 specification of the RevA 1xHRPD system (the 3GPP2 C.S-0024-A v3.0 specification). To continue, the RTCMAC QoS Algorithm updates TxT2Pn based on the determined sub-packet size for sub-frame n as follows:TxT2Pn=f5(transmitting subpacket size at subframe n)To be more specific, if the HARQ received by the AT is an ACK for the sub-packet transmitted at sub-frame n−3 from the forward MAC channel, the sub-packet size for the sub-packet to be transmitted at sub-frame n is the determined sub-packet size in step S340 (step S350). Otherwise, if the HARQ received by the AT is a NAK for the sub-packet transmitted at sub-frame n−3, then the sub-packet to be transmitted at sub-frame n will be the sub-packet transmitted at sub-frame n−3 (step S355), which means a retransmission is to be performed. After updating TxT2Pn, T2POutflowi,n may be updated accordingly (step S360) as follows:T2POutflowi,n=f6(transmitting subpacket size at subframe n, TxT2Pn)BucketLevelSati,n+1 and BucketLeveli,n+1 for sub-frame n+1 are subsequently updated (step S370) as follows:
                    ⁢                  BucketLevelSat                  i          ,                      n            +            1                              =              f        ⁢                                  ⁢        7        ⁢                  (                                    T              ⁢                                                          ⁢              2              ⁢                                                          ⁢                              PInFlow                                  i                  ,                  n                                                      ,                          FRAB              n                                )                                BucketLevel              i        ,                  n          +          1                      =          f      ⁢                          ⁢      8      ⁢              (                                                                              BucketLevel                                      i                    ,                    n                                                  ,                                  T                  ⁢                                                                          ⁢                  2                  ⁢                                                                          ⁢                                      PInFlow                                          i                      ,                      n                                                                      ,                                  T                  ⁢                                                                          ⁢                  2                  ⁢                                      POutFlow                                          i                      ,                      n                                                                      ,                                                                                        BucketLevelSat                                  1                  ,                                      n                    +                    1                                                                                      )            At last, the RRIChannelGain for the sub-packet to be transmitted at sub-frame n is calculated (step S380). If the received HARQ is an ACK, a new RRIChannelGain for the sub-packet to be transmitted at sub-frame n is calculated as follows:RRIChannelGainNewn=f9(subpacket 0 at subframe n)Otherwise, if the received HARQ is a NAK, the old RRIChannelGain for the sub-packet to be transmitted at sub-frame n is calculated as follows:RRIChannelGainOldn=f10(subpacket id at subframe n)Note that f1˜f10 described above are functions for deriving the QoS parameters, and reference may be made to the 3GPP2 specification of the RevA 1xHRPD system.
Thus, the QoS calculation, packet processing, and symbol processing need to be accomplished in just one slot (i.e. the slot 3 of sub-frame n−1) before the current reverse sub-packet for sub-frame n can be transmitted at sub-frame n. Thus, a huge burden is placed on the AT, such as an extremely tight CPU instruction rate (MIPS). In addition, if the AT misses the scheduled time at sub-frame n and transmits the packet at sub-frame n+1 because all of step 1 to step 5 are not done by the start of sub-frame n due to tight MIPS, the AN can't decode the packet due to wrong interlace number which is used for interleaving in the RevA 1xHRPD system. As a result, it is not only hard to implement such a design in most existing AT systems, but also such a design may cause a degression in packet transmission rate.